<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1999-2023 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "Funding Free Software", the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below).  A copy of the license is included in the section entitled
"GNU Free Documentation License".

(a) The FSF's Front-Cover Text is:

A GNU Manual

(b) The FSF's Back-Cover Text is:

You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development. -->
<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>caf_register_t (The GNU Fortran Compiler)</title>

<meta name="description" content="caf_register_t (The GNU Fortran Compiler)">
<meta name="keywords" content="caf_register_t (The GNU Fortran Compiler)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html#Top" rel="start" title="Top">
<link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Type-and-enum-ABI-Documentation.html#Type-and-enum-ABI-Documentation" rel="up" title="Type and enum ABI Documentation">
<link href="caf_005fderegister_005ft.html#caf_005fderegister_005ft" rel="next" title="caf_deregister_t">
<link href="caf_005ftoken_005ft.html#caf_005ftoken_005ft" rel="prev" title="caf_token_t">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en">
<a name="caf_005fregister_005ft"></a>
<div class="header">
<p>
Next: <a href="caf_005fderegister_005ft.html#caf_005fderegister_005ft" accesskey="n" rel="next">caf_deregister_t</a>, Previous: <a href="caf_005ftoken_005ft.html#caf_005ftoken_005ft" accesskey="p" rel="prev">caf_token_t</a>, Up: <a href="Type-and-enum-ABI-Documentation.html#Type-and-enum-ABI-Documentation" accesskey="u" rel="up">Type and enum ABI Documentation</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="caf_005fregister_005ft-1"></a>
<h4 class="subsection">7.1.2 <code>caf_register_t</code></h4>

<p>Indicates which kind of coarray variable should be registered.
</p>
<pre class="verbatim">typedef enum caf_register_t {
  CAF_REGTYPE_COARRAY_STATIC,
  CAF_REGTYPE_COARRAY_ALLOC,
  CAF_REGTYPE_LOCK_STATIC,
  CAF_REGTYPE_LOCK_ALLOC,
  CAF_REGTYPE_CRITICAL,
  CAF_REGTYPE_EVENT_STATIC,
  CAF_REGTYPE_EVENT_ALLOC,
  CAF_REGTYPE_COARRAY_ALLOC_REGISTER_ONLY,
  CAF_REGTYPE_COARRAY_ALLOC_ALLOCATE_ONLY
}
caf_register_t;
</pre>
<p>The values <code>CAF_REGTYPE_COARRAY_ALLOC_REGISTER_ONLY</code> and
<code>CAF_REGTYPE_COARRAY_ALLOC_ALLOCATE_ONLY</code> are for allocatable components
in derived type coarrays only.  The first one sets up the token without
allocating memory for allocatable component.  The latter one only allocates the
memory for an allocatable component in a derived type coarray.  The token
needs to be setup previously by the REGISTER_ONLY.  This allows to have
allocatable components un-allocated on some images.  The status whether an
allocatable component is allocated on a remote image can be queried by
<code>_caf_is_present</code> which used internally by the <code>ALLOCATED</code>
intrinsic.
</p>



</body>
</html>
